/*
 * Copyright (c) 2019. ascend 版权所有禁止转载。
 */

package cn.edu.zua.demo15.validator;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
 * 说明：
 *
 * @author ascend
 * 2019/1/28 17:21
 */
public class FlagValidatorClass implements ConstraintValidator<FlagValidator, Object> {

    /**
     * 临时变量保存flag值列表
     */
    private String values;

    @Override
    public void initialize(FlagValidator constraintAnnotation) {
        // 将注解内配置的值复制给临时变量
        this.values = constraintAnnotation.values();
    }

    /**
     * 实现验证
     */
    @Override
    public boolean isValid(Object value, ConstraintValidatorContext context) {
        // 分割定义的有效值
        String[] arr = values.split(",");
        boolean isFlag = false;
        for (String flag : arr) {
            // 存在一致跳出循环
            if (flag.equals(value)) {
                isFlag = true;
                break;
            }
        }
        // 返回是否存在
        return isFlag;
    }
}
